package com.yungu.swift.system.sys.service;

import com.yungu.swift.base.ResponseData;
import com.yungu.swift.base.service.BaseService;
import com.yungu.swift.system.sys.model.dto.SysCityDto;
import com.yungu.swift.system.sys.model.vo.CityVo;

import java.util.List;
import java.util.Map;

/**
 * Copyright © 厦门云谷互联信息有限公司 2018-2020 All Right Reserved
 * <p>
 * 城市信息业务逻辑接口
 *
 * @author xiuyin.cui - Generate
 * @version 1.1.0-SNAPSHOT
 * @since 2018-07-02 11:19
 */
public interface SysCityService extends BaseService<SysCityDto> {

    /**
     * 根据传入的省获取城市列表
     *
     * @param provinceId 省份id
     * @param filterArea 是否过滤区县 true 过滤 false 不过滤
     * @return List
     */
    ResponseData<List<SysCityDto>> findCityByProvinceId(String provinceId, Boolean filterArea);

    /**
     * 根据城市名获取城市uuid
     *
     * @param originCity 参数
     * @return String
     */
    ResponseData<String> getCityUuidByName(String originCity);

    /**
     * 获取开通城市
     *
     * @param map 参数
     * @return List
     */
    ResponseData<List<SysCityDto>> getOpenCities(Map<String, Object> map);

    /**
     * 根据区域代码获取城市uuid
     *
     * @param adCode 参数
     * @return String
     */
    ResponseData<String> getCityUuidByAdCode(String adCode);

    /**
     * 根据传入城市编号查找出最后一个重复的编号 如BD查询出BD2
     *
     * @param cityNo 参数
     * @return String
     */
    ResponseData<String> getMaxCityNo(String cityNo);


    /**
     * 获取业务开通城市
     *
     * @param map Map
     * @return List<CityVo>
     */
    ResponseData<List<CityVo>> findCityByBusinessType(Map<String, Object> map);

    /**
     * 业务uuid 和 adcode 查询城市 uuid
     *
     * @param map
     * @return
     */
    ResponseData<String> getCityUuidByMap(Map<String, Object> map);
}